library(haven)

# Load in Data set
impdat20_pres <- read_spss("./data//President IAT.public.2020-Jan282021.sav")
# Subset to USA
impdat20_pres <- subset(impdat20_pres, countryres_num == 1)

# Meta Info ---------------------------------------------------------------
impdat20_pres$date_mdy <- format(impdat20_pres$date, "%Y-%m-%d")
impdat20_pres$date_mdy <- as.Date(impdat20_pres$date_mdy)
impdat20_pres$week <- format(as.Date(impdat20_pres$date), "%W")

# Demographics ---------------------------------------------------------------
# Age
impdat20_pres$age[which(impdat20_pres$birthyear > 1900)] <- impdat20_pres$year[which(impdat20_pres$birthyear > 1900)] - impdat20_pres$birthyear[which(impdat20_pres$birthyear > 1900)]
impdat20_pres$age_sc <- (impdat20_pres$age-min(impdat20_pres$age, na.rm = T))/(max(impdat20_pres$age, na.rm = T)-min(impdat20_pres$age, na.rm = T))

impdat20_pres$age_cat4 <- NA
impdat20_pres$age_cat4[which(impdat20_pres$age >= 18 & impdat20_pres$age <= 29)] <- "18-29"
impdat20_pres$age_cat4[which(impdat20_pres$age >= 30 & impdat20_pres$age <= 44)] <- "30-44"
impdat20_pres$age_cat4[which(impdat20_pres$age >= 45 & impdat20_pres$age <= 64)] <- "45-64"
impdat20_pres$age_cat4[which(impdat20_pres$age >= 65)] <- "65+"
impdat20_pres$age_cat4 <- as.factor(impdat20_pres$age_cat4)

# Sex
impdat20_pres$sex <- NA
impdat20_pres$sex[which(impdat20_pres$birthSex == 2)] <- "f"
impdat20_pres$sex[which(impdat20_pres$birthSex == 1)] <- "m"

# Race and Ethnicity
impdat20_pres$race <- factor(impdat20_pres$raceomb_002, 
                           levels = c(1:max(impdat20_pres$raceomb_002, na.rm = T)),
                           labels = c("American Indian/Alaskan Native",
                                      "East Asian",
                                      "South Asian",
                                      "Native Hawaiian/Pacific Islander",
                                      "Black",
                                      "White",
                                      "Other", 
                                      "Multiracial"))

impdat20_pres$hisp <- NA
impdat20_pres$hisp[which(impdat20_pres$ethnicityomb == 1)] <- 1
impdat20_pres$hisp[which(impdat20_pres$ethnicityomb == 2)] <- 0 # drops unknowns

impdat20_pres$race5 <- NA
impdat20_pres$race5[which(impdat20_pres$race %in% c("East Asian", "South Asian", "Native Hawaiian/Pacific Islander") & impdat20_pres$hisp == 0)] <- "Asian/Pacific Islander"
impdat20_pres$race5[which(impdat20_pres$race == "Black" & impdat20_pres$hisp == 0)] <- "Black"
impdat20_pres$race5[which(impdat20_pres$race == "White" & impdat20_pres$hisp == 0)] <- "White"
impdat20_pres$race5[which(impdat20_pres$race %in% c("Other", "Multiracial") & impdat20_pres$hisp == 0)] <- "Other"
impdat20_pres$race5[which(impdat20_pres$hisp == 1)] <- "Hispanic"
impdat20_pres$race5 <- as.factor(impdat20_pres$race5)
impdat20_pres$race5 <- factor(impdat20_pres$race5, levels(impdat20_pres$race5)[c(1:3,5,4)])

impdat20_pres$race3 <- NA
impdat20_pres$race3[which(impdat20_pres$race5 == "White")] <- "White"
impdat20_pres$race3[which(impdat20_pres$race5 == "Black")] <- "Black"
impdat20_pres$race3[which(impdat20_pres$race5 != "Black" & impdat20_pres$race5 != "White")] <- "Other"

# Ideology
impdat20_pres$ideo3 <- NA
impdat20_pres$ideo3[which(impdat20_pres$politicalid_7 < 4)] <- 1
impdat20_pres$ideo3[which(impdat20_pres$politicalid_7 == 4)] <- 0
impdat20_pres$ideo3[which(impdat20_pres$politicalid_7 > 4)] <- -1
impdat20_pres$ideo3_lab <- factor(impdat20_pres$ideo3,
                                labels = c("liberal", "moderate", "conservative"))

impdat20_pres$ideo_lib <- ifelse(impdat20_pres$ideo3 == -1, 1, 0)
impdat20_pres$ideo_mod <- ifelse(impdat20_pres$ideo3 == 0, 1, 0)
impdat20_pres$ideo_con <- ifelse(impdat20_pres$ideo3 == 1, 1, 0)

impdat20_pres$ideo7 <- impdat20_pres$politicalid_7*-1 + 7
impdat20_pres$ideo7_sc <- impdat20_pres$ideo7/6

# Region
impdat20_pres$south <- NA
impdat20_pres$south <- ifelse(impdat20_pres$STATE %in% c("VA", "NC", "SC", "GA", "FL", "MS", "AL", "TN", "AR", "LA", "TX"),
                            1, 0)
impdat20_pres$south[impdat20_pres$STATE == ""] <- NA

impdat20_pres$census_region <- NA
impdat20_pres$census_region[which(impdat20_pres$STATE %in% c("DE", "MD", "DC", "WV", "KY", "OK",
                                                         "VA", "NC", "SC", "GA", "FL", "MS", "AL", 
                                                         "TN", "AR", "LA", "TX"))] <- "South"
impdat20_pres$census_region[which(impdat20_pres$STATE %in% c("CA", "OR", "WA", "MT", "WY",
                                                         "ID", "CO", "UT", "AZ", "NM",
                                                         "NV", "AK", "HI"))] <- "West"
impdat20_pres$census_region[which(impdat20_pres$STATE %in% c("ND", "SD", "MN", "WI",
                                                         "IA", "NE", "KS", "MO",
                                                         "IL", "IN", "MI", "OH"))] <- "Midwest"
impdat20_pres$census_region[which(impdat20_pres$STATE %in% c("ME", "VT", "NH", "MA", "RI",
                                                         "CT", "NY", "NJ", "PA"))] <- "Northeast"
impdat20_pres$census_region[impdat20_pres$STATE == ""] <- NA
impdat20_pres$census_region <- as.factor(impdat20_pres$census_region)

# Education
impdat20_pres$edu_cat <- NA
impdat20_pres$edu_cat[which(impdat20_pres$edu <= 3)] <- 1 # Less than HS
impdat20_pres$edu_cat[which(impdat20_pres$edu == 4)] <- 2 # HS 
impdat20_pres$edu_cat[which(impdat20_pres$edu == 5 | impdat20_pres$edu == 6)] <- 3 # Some college or associates
impdat20_pres$edu_cat[which(impdat20_pres$edu == 7)] <- 4 # College
impdat20_pres$edu_cat[which(impdat20_pres$edu >= 8)] <- 5 # Adv degree or schooling
impdat20_pres$col <- ifelse(impdat20_pres$edu_cat >= 4, 1, 0)

impdat20_pres$edu_cat4 <- NA
impdat20_pres$edu_cat4[which(impdat20_pres$edu_cat <= 2)] <- "HS or Less"
impdat20_pres$edu_cat4[which(impdat20_pres$edu_cat == 3)] <- "Some College"
impdat20_pres$edu_cat4[which(impdat20_pres$edu_cat == 4)] <- "College"
impdat20_pres$edu_cat4[which(impdat20_pres$edu_cat == 5)] <- "Post-Grad"
impdat20_pres$edu_cat4 <- factor(impdat20_pres$edu_cat4,
                               levels = c("HS or Less",
                                          "Some College",
                                          "College",
                                          "Post-Grad"))

# Reason for Visiting
# impdat20_pres$broughtwebsite
impdat20_pres$broughtwebsite2 <- NA
impdat20_pres$broughtwebsite2[which(impdat20_pres$broughtwebsite %in% c("Assignment for school", "Assignment for work"))] <- "Assignment school/work"
impdat20_pres$broughtwebsite2[which(impdat20_pres$broughtwebsite %in% c("Mention in a news story (any medium)"))] <- "News Mention"
impdat20_pres$broughtwebsite2[which(impdat20_pres$broughtwebsite %in% c("My Internet search for this topic or a related topic", "Mention or link at a non-news Internet site"))] <- "Internet Mention/Search"
impdat20_pres$broughtwebsite2[which(impdat20_pres$broughtwebsite %in% "Recommendation of a friend or co-worker")] <- "Peer Recommendation"
impdat20_pres$broughtwebsite2[which(impdat20_pres$broughtwebsite %in% c("Other", "null"))] <- "Other/null"

impdat20_pres$broughtwebsite2 <- as.factor(impdat20_pres$broughtwebsite2)


impdat20_pres$broughtwebsite4 <- NA
impdat20_pres$broughtwebsite4[which(impdat20_pres$broughtwebsite %in% c("Assignment for school", "Assignment for work"))] <- "Assignment school/work"
impdat20_pres$broughtwebsite4[which(impdat20_pres$broughtwebsite %in% c("My Internet search for this topic or a related topic", "Mention or link at a non-news Internet site", "News Mention"))] <- "News/Internet Mention/Search"
impdat20_pres$broughtwebsite4[which(impdat20_pres$broughtwebsite %in% "Recommendation of a friend or co-worker")] <- "Peer Recommendation"
impdat20_pres$broughtwebsite4[which(impdat20_pres$broughtwebsite %in% c("Other", "null"))] <- "Other/null"

impdat20_pres$broughtwebsite4 <- as.factor(impdat20_pres$broughtwebsite4)

# Interview Date Indicators -----------------------------------------------
impdat20_pres$post_gf <- ifelse(impdat20_pres$date_mdy > "2020-05-25", 1, 0)
impdat20_pres$post_gf_1month <- ifelse(impdat20_pres$date_mdy > "2020-05-25" & impdat20_pres$date_mdy <= "2020-06-26", 
                                     1, 0)
impdat20_pres$post_gf_2month <- ifelse(impdat20_pres$date_mdy > "2020-06-26" & impdat20_pres$date_mdy <= "2020-07-26", 
                                     1, 0)
impdat20_pres$post_gf_3month <- ifelse(impdat20_pres$date_mdy > "2020-07-26" & impdat20_pres$date_mdy <= "2020-08-26", 
                                     1, 0)
